When a receiving apparatus receives serial data that is a data string transmitted by a transmitting apparatus, because the clock frequencies of the receiving apparatus and the transmitting apparatus are different from each other, a case is conventionally present where the data cannot to be received or where the data cannot be accurately received because the same data is received multiple times. A technique is known of restoring the data for the receiving apparatus to accurately receive the data transmitted by the transmitting apparatus.
For example, related to the technique above, another technique is known where a receiving apparatus receives a data string based on multiple timings produced from a clock; dynamically determines a restoration timing to restore the data received at the timings; and, in this determination, when consecutive changes of the restoration timing exceed one cycle of the clock supplied to the receiving apparatus, the receiving apparatus adds data to be restored or deletes data from a data group to be restored (see, e.g., Nick Sawyer, “Restoration of Data”, Xilinx, XAPP244 (v2.2), Aug. 7, 2002, pp. 1-6.
Another related technique is known where a receiving apparatus generates a clock synchronized with a data string transmitted by a transmitting apparatus, whereby, data is restored (see, e.g., Japanese Laid-Open Patent Publication No. 2004-80792).
However, in the case where the receiving apparatus dynamically determines the timing to restore the data received, when the data transmitted from the transmitting apparatus changes at a low frequency, the restoration timing changes discretely. Therefore, the data to be restored is still lost or the same data is still restored multiple times. As a result, a problem arises in that the accuracy in restoring the data is degraded.